The present application relates to a method and apparatus for controllably driving the motion of one or more masses and, more particularly, relates to a method and apparatus for deriving and implementing one or more motion profiles, e.g., position and velocity profiles, for one or more masses driven, for example, by a servo or stepper motor. The method and apparatus are particularly applicable to printer devices and will be described with particular reference thereto. However, it is to be appreciated that the method and apparatus described herein may relate to other environments and applications.
Drive means, including servo motors and stepper motors, are conventionally employed in a variety of automated devices including printing devices. Such devices often require generally incremental displacements of one or more masses contained therein to perform certain functions. For example, in some printing devices, the one or more masses can include a print drum, a printer head, a drum maintenance roller and a transfix roller.
To control one of these masses, a distinct motion profile is normally conveyed to the drive means or motor connected to the mass and, more particularly, to a motor controller that controls the motor. In the case of a rotating mass controlled by a motor (such as a print drum), using the motion profile, the motor generates rotational output to move the mass to desired positions at desired velocities over a period of time. Some devices may include multiple motors for driving multiple masses which may require multiple motion profiles and sometimes interrelated multiple motion profiles to be provided to the multiple motors. For example, printer devices have multiple masses driven by multiple motors and often require multiple motion profiles for controlling print drums, printer heads, drum maintenance rollers, transfix rollers, other moving printer device masses and the like which are typically interrelated to one another.
More specifically, functions or events performed by some printer devices require the various moving masses therein to be appropriately synchronized with one another. For example, the print drum and the print head may work together to apply a printed image on the print drum, the print drum and the transfix roller may work together to properly position a sheet of print media and transfer the image from the print drum to the sheet of print media, and the print drum and the drum maintenance roller may work together to clean the print drum prior to application of a subsequent image by the print head. Often, the precise position and velocity of each of the printer device components is not important by itself but, rather, only in relation to the other printer device components.
Heretofore, hand-coded equations were often used to construct the motion profiles of the one or more moving mass components of automated devices including printer devices. Specifically, hand-coded equations are used to construct motion profiles through software structures and sequences. One problem with the use of hand-coded equations is that the re-usability of a particular motion profile is often unavailable. More particularly, hand-coded equations often make it very difficult to change the shape and/or nature of a particular motion profile without completely revamping the entire motion profile. In addition, the programming of the motor or motors used to drive the moving mass components is very error prone and the precise errors in need of correction are often difficult to identify. Thus, there is a need for a method and apparatus that more easily allows motion profiles to be derived or developed, refined, varied and implemented.